package me.zhengjie.modules.dqhrm.util;

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;

@Converter(autoApply = true)
public class GenderConverter  implements AttributeConverter<Gender, String> {
    /**
     * 此方法告诉jpa,数据库里存的值,即插入和更新操作时执行；
     */
    @Override
    public String convertToDatabaseColumn(Gender gender) {
        if(gender == null){
            return null;
        }
        return gender.getCode(); // 此处存储的是编码
    }

    /**
     * 此方法告诉Java从数据库里取出的值对应的是哪个enum值，即查询操作时执行。
     */
    @Override
    public Gender convertToEntityAttribute(String code) {
        if(code == null){
            return null;
        }
        for (Gender gender : Gender.values()) {
            if(gender.getCode().equals(code)){
                return gender; // 获取到当前Sex信息
            }
        }
        throw new IllegalArgumentException(); // 或者给个默认的enum eg: return Category.UNKNOWN
    }
}
